from agentscope.service.service_toolkit import ServiceFunction
from agentscope.service import (
    ServiceToolkit,
    ServiceResponse,
    ServiceExecStatus,
)
import os
def read_file(filepath:str, root_path:str):
    """Read the file and return the content.

    Args:
        filepath (`str`): The path to the file.
        root_path (`str`): The root path of now student's workspace.

    Returns:
        content (`str`): The content of the file.
    """
    # 从books/code_tests/name/中获取所有.in文件

    filepath = os.path.join('..', root_path, filepath)
    try:
        with open(filepath, 'r') as f:
            content = f.read()
    except Exception as e:
        status = ServiceExecStatus.ERROR
        content = str(e)
        return ServiceResponse(status, (content))
    
    status = ServiceExecStatus.SUCCESS
    return ServiceResponse(status, (content))


def write_file(filepath:str, content:str, root_path:str):
    """Write content to the file.

    Args:
        filepath (`str`): The path to the file.
        content (`str`): The content to be written to the file.
        root_path (`str`): The root path of now student's workspace.

    Returns:
        None.
    """
    filepath = os.path.join('..', root_path, filepath)
    try:
        with open(filepath, 'w') as f:
            f.write(content)
    except Exception as e:
        status = ServiceExecStatus.ERROR
        return ServiceResponse(status, None)
    status = ServiceExecStatus.SUCCESS
    return ServiceResponse(status, None)
        
file_tools = [read_file, write_file]